import { defineConfig } from 'vite'
import path from 'node:path'
import electron from 'vite-plugin-electron/simple'
import react from '@vitejs/plugin-react'
import { visualizer } from 'rollup-plugin-visualizer'

// const API_URL = JSON.stringify(process.env.API_URL || 'http://localhost:3000/api');  // 开发环境直连
const API_URL = JSON.stringify(process.env.API_URL || 'https://cursortool.codeera.cn/api');  // 生产环境走域名

// https://vitejs.dev/config/
export default defineConfig({
  define: {
    '__API_URL__': API_URL,
  },
  server: {
    port: 5174,
  },
  plugins: [
    react(),
    electron({
      main: {
        // Shortcut of `build.lib.entry`.
        entry: 'electron/main.ts',
        vite: {
          define: {
            '__API_URL__': API_URL,
          },
          build: {
            rollupOptions: {
              external: ['better-sqlite3']
            }
          }
        }
      },
      preload: {
        // Shortcut of `build.rollupOptions.input`.
        // Preload scripts may contain Web assets, so use the `build.rollupOptions.input` instead `build.lib.entry`.
        input: path.join(__dirname, 'electron/preload.ts'),
      },
      // Ployfill the Electron and Node.js API for Renderer process.
      // If you want use Node.js in Renderer process, the `nodeIntegration` needs to be enabled in the Main process.
      // See 👉 https://github.com/electron-vite/vite-plugin-electron-renderer
      renderer: process.env.NODE_ENV === 'test'
        // https://github.com/electron-vite/vite-plugin-electron-renderer/issues/78#issuecomment-2053600808
        ? undefined
        : {},
    }),
    visualizer({
      open: true, // 在默认浏览器中自动打开报告
      filename: 'stats.html', // 输出文件名
    }),
  ],
})
